package com.example.demo.service;

import com.example.demo.entity.AfshopCoupon;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 当前评价的次数表 服务类
 * </p>
 *
 * @author Mr.We
 * @since 2024-06-25
 */
public interface IAfshopCouponService extends IService<AfshopCoupon> {
    /**
     * 根据优惠券ID查询优惠券信息。
     * @param couponId 优惠券ID
     * @return 返回对应的AfshopCoupon对象，如果找不到则返回null
     */
    AfshopCoupon queryObject(Integer couponId);

    /**
     * 查询优惠券列表。
     * @param map 查询条件参数，包含各种过滤条件和排序规则
     * @return 返回符合条件的优惠券列表
     */
    List<AfshopCoupon> queryList(Map<String, Object> map);

    /**
     * 查询满足条件的优惠券总数。
     * @param map 查询条件参数，用于统计符合条件的优惠券数量
     * @return 返回满足条件的优惠券总数
     */
    int queryTotal(Map<String, Object> map);

    /**
     * 查询用户的优惠券列表。
     * @param map 查询条件参数，包含用户ID等条件
     * @return 返回用户所有的优惠券列表
     */
    List<AfshopCoupon> queryUserCoupons(Map<String, Object> map);

    /**
     * 查询用户可使用的优惠券中面额最大的优惠券。
     * @param map 查询条件参数，包含用户ID等条件
     * @return 返回用户可使用的优惠券中面额最大的优惠券
     */
    AfshopCoupon queryMaxUserEnableCoupon(Map<String, Object> map);

    /**
     * 查询用户的优惠券列表。
     * @param map 查询条件参数，包含用户ID等条件
     * @return 返回用户所有的优惠券列表
     */
    List<AfshopCoupon> queryUserCouponList(Map<String, Object> map);
}
